/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.enclojure.repl;
import clojure.lang.IFn;
import clojure.lang.RT;
import clojure.lang.Symbol;
import clojure.lang.Var;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.FileHandler;
/**
*
* @author ericthorsen
*/
public class launcher {
static final Var requireFn = RT.var("clojure.core","require");
static final IFn setupTrackingFn = (IFn)RT.var("org.enclojure.repl.main", "-main");
static final IFn applyFn = (IFn)RT.var("clojure.core", "apply");
static Logger l = Logger.getLogger("org.enclojure.repl");
static public void main(String[] args)
{
StringBuilder sb = new StringBuilder();
for(int i=0;i<args.length;++i)
{
sb.append(args[i]);
sb.append(" ");
}
try {
FileHandler fh = new FileHandler("%t" + java.io.File.separator + "repl%glog");
l.addHandler(fh);
requireFn.invoke(Symbol.create("org.enclojure.repl.main"));
if (args.length > 1) {
String[] _args = new String[args.length - 1];
System.arraycopy(args, 1, _args, 0, _args.length);
applyFn.invoke(setupTrackingFn ,args);
}
} catch (Exception ex) {
Logger.getLogger(launcher.class.getName()).log(Level.SEVERE, null, ex);
}
}
}